package com.creating.mict.service.impl;

import java.util.List;
import javax.annotation.Resource;
import com.creating.mict.dao.ColumnDao;
import com.creating.mict.domain.Column;
import com.creating.mict.service.IColumnService;

/**
 * @ClassName: ColumnServiceImpl
 * @Description: 栏目service实现类
 * @author xuelei
 * @date 2012-3-9 下午7:57:34
 * 
 */
public class ColumnServiceImpl implements IColumnService {

	@Resource
	private ColumnDao columnDao;
	
	/**
	 * 
	* @Title: buildCheckReportTree 
	* @Description: 组装checkBox树
	* @param @return 
	* @return String    返回类型 
	* @throws
	 */
	public String buildCheckColumnTreeByUserRole(String node, String loginName) {
		List<Column> user_list = columnDao.getAllColumnByRoleId(loginName);
		List<Column> all_list = columnDao.getAllColumnList();
		// 组装报表树
		StringBuffer jsonStr = new StringBuffer("[");
		boolean check_boo = false;
		for (Column ri : all_list) {
			if (ri.getFparent().equals(node)) {
				check_boo = false;
				jsonStr.append("{");
				// 叶子
				if (ri.getFleaf().equals("1")) {
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					//jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'leaf':").append(true).append(",");
					for(int i = 0; i < user_list.size(); i++) {
						if(user_list.get(i).getFbh().equals(ri.getFbh())) {
							check_boo = true;
						}
					}
					if(check_boo) {
						jsonStr.append("'checked':").append(true).append(",");
					} else {
						jsonStr.append("'checked':").append(false).append(",");
					}
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFbh() + "-" + ri.getFname()).append("'");
				// 非叶子
				} else {
					jsonStr.append("'cls':'").append("folder").append("',");//文件图标
					jsonStr.append("'leaf':").append(false).append(",");
					for(int i = 0; i < user_list.size(); i++) {
						if(user_list.get(i).getFbh().equals(ri.getFbh())) {
							check_boo = true;
						}
					}
					if(check_boo) {
						jsonStr.append("'checked':").append(true).append(",");
					} else {
						jsonStr.append("'checked':").append(false).append(",");
					}
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFname()).append("'");
				}
				jsonStr.append("},");
			}
		}
		String str = jsonStr.substring(0, jsonStr.length() - 1) + "]";
		return "{key:" + str + "}";
	}
	
	/**
	 * 
	* @Title: buildReportInfoTree 
	* @Description: 组装报表树
	* @param @param loginName
	* @param @param node
	* @param @return 
	* @return String    返回类型 
	* @throws
	 */
	public String buildColumnTree(String loginName, String node) {
		
		List<Column> list = columnDao.getUserColumnList(loginName);
		// 组装报表树
		String fsqlStr = "";
		StringBuffer jsonStr = new StringBuffer("[");
		for (Column ri : list) {
			if (ri.getFparent().equals(node)) {
				jsonStr.append("{");
				// 叶子
				if (ri.getFleaf().equals("1")) {
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'leaf':").append(true).append(",");
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'fflag':'").append(ri.getFflag()).append("',");
					jsonStr.append("'text':'").append(ri.getFbh() + "-" + ri.getFname()).append("'");
				// 非叶子
				} else {
					jsonStr.append("'cls':'").append("folder").append("',");//文件图标
					jsonStr.append("'leaf':").append(false).append(",");
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'fflag':'").append(ri.getFflag()).append("',");
					jsonStr.append("'text':'").append(ri.getFname()).append("'");
				}
				jsonStr.append("},");
			}
		}
		String str = jsonStr.substring(0, jsonStr.length() - 1) + "]";
		return "{key:" + str + "}";
	}
	
	
	/**
	 * 
	* @Title: buildCheckReportTree 
	* @Description: 组装checkBox树
	* @param @return 
	* @return String    返回类型 
	* @throws
	 */
	public String buildCheckColumnTree(String node) {
		List<Column> list = columnDao.getAllColumnList();
		// 组装报表树
		StringBuffer jsonStr = new StringBuffer("[");
		for (Column ri : list) {
			if (ri.getFparent().equals(node)) {
				jsonStr.append("{");
				// 叶子
				if (ri.getFleaf().equals("1")) {
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'leaf':").append(true).append(",");
					jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFbh() + "-" + ri.getFname()).append("'");
				// 非叶子
				} else {
					jsonStr.append("'cls':'").append("folder").append("',");//文件图标
					jsonStr.append("'leaf':").append(false).append(",");
					jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFname()).append("'");
				}
				
				jsonStr.append("},");
			}
		}
		String str = jsonStr.substring(0, jsonStr.length() - 1) + "]";
		return "{key:" + str + "}";
	}
	
	
	/**
	 * 
	* @Title: saveReportInfo 
	* @Description: 保存报表或图表信息
	* @param @param reportInfo
	* @param @return 
	* @return boolean    返回类型 
	* @throws
	 */
	public boolean saveColumn(Column column) {
		return columnDao.saveColumn(column);
	}
	
	
	/**
	 * 
	* @Title: getReportInfoByFbh 
	* @Description: 根据编号获取报表或图表对象
	* @param @param fbh
	* @param @return 
	* @return ReportInfo    返回类型 
	* @throws
	 */
	public Column getColumnByFbh(String fbh) {
		return columnDao.getColumnByFbh(fbh);
	}
	
	/**
	 * 
	* @Title: deleteReportInfo 
	* @Description: 删除报表（或报表类别）信息
	* @param @param fbh
	* @param @param ftype
	* @param @return 
	* @return boolean    返回类型 
	* @throws
	 */
	public boolean deleteColumn(String fbh, String ftype) {
		return columnDao.deleteColumn(fbh, ftype);
	}
	
	/**
	 * 
	* @Title: buildCheckBoxTree 
	* @Description: 组装checkBox树
	* @param @return 
	* @return String    返回类型 
	* @throws
	 */
	public String buildCheckBoxTree(String loginName, String node, String fflag) {
		List<Column> list = columnDao.getUserColumnList(loginName);
		// 组装报表树
		StringBuffer jsonStr = new StringBuffer("[");
		for (Column ri : list) {
			if (ri.getFparent().equals(node)) {
				jsonStr.append("{");
				// 叶子
				if (ri.getFleaf().equals("1")) {
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'cls':'").append("file").append("',");//文件图标
					jsonStr.append("'leaf':").append(true).append(",");
					jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFbh() + "-" + ri.getFname()).append("'");
				// 非叶子
				} else {
					jsonStr.append("'cls':'").append("folder").append("',");//文件图标
					jsonStr.append("'leaf':").append(false).append(",");
					jsonStr.append("'checked':").append(false).append(",");
					jsonStr.append("'id':'").append(ri.getFbh()).append("',");
					jsonStr.append("'ftype':'").append(ri.getFtype()).append("',");
					jsonStr.append("'text':'").append(ri.getFname()).append("'");
				}
				
				jsonStr.append("},");
			}
		}
		String str = jsonStr.substring(0, jsonStr.length() - 1) + "]";
		return "{key:" + str + "}";
	}
	

}
